1. Field of the Invention
This invention generally relates to network navigation, and more specifically relates to a method, product, and apparatus for requesting a network resource.
2. Description of the Related Art
The Internet is a vast computer network having many smaller networks that span the world. A network provides a distributed communicating system of computers that are interconnected by various electronic communication links and computer software protocols. Because of the Internet's distributed and open network architecture, it is possible to transfer data from one computer to any other computer worldwide. In 1991, the World-Wide-Web (WWW or Web) revolutionized the way information is managed and distributed.
The Web is based on the concept of hypertext and a transfer method known as Hypertext Transfer Protocol (HTTP) which is designed to run primarily over a Transmission Control Protocol/Internet Protocol (TCP/IP) connection that employs a standard Internet setup. A server computer may provide data and a client computer may display or process it. TCP may then convert messages into streams of packets at the source, then reassemble them back into messages at the destination. Internet Protocol (IP) handles addressing, seeing to it that packets are routed across multiple nodes and even across multiple networks with multiple standards. HTTP protocol permits client systems connected to the Internet to access independent and geographically scattered server systems also connected to the Internet.
Web browsers, such as Microsoft Internet Explorer (MSIE), Netscape Navigator, and NeoPlanet provide graphical user interface (GUI) based client applications that implement the client side portion of the HTTP protocol. One format for information transfer is to create documents using Hypertext Markup Language (HTML). HTML pages are made up of standard text as well as formatting codes that indicate how the page should be displayed. The client side web browser reads these codes in order to display the page. A web page may be static and requires no variables to display information or link to other predetermined web pages. A web page is dynamic when arguments are passed which are either hidden in the web page or entered from a client browser to supply the necessary inputs displayed on the web page. Common Gateway Interface (CGI) is a standard for running external programs from a web server. CGI specifies how to pass arguments to the executing program as part of the HTTP server request. Commonly, a CGI script may take the name and value arguments from an input form of a first web page which can be used as a query to access a database server and generate an HTML web page with customized data results as output that is passed back to the client browser for display.
There are many network access devices and program products that primarily serve as a navigation tool allowing a user to request network resources from resource identifiers. Navigating to a different network resource could happen as a result of external automation, internal automation from a script, the user clicking a hyperlink or typing in the address bar or location field of web browser, for example. All too often, such navigation tools can not always successfully access a network resource from an identifier for many reasons. Some reasons may include: domain name can not be translated into an IP address, invalid syntax, access denied, payment required, request forbidden, object not found, method is not allowed, no response acceptable to client found, proxy authentication required, server timed out waiting for request, user should resubmit with more info, resource is no longer available, server refused to accept request without a length, precondition given in request failed, network resource identifier is too long, unsupported media type, retry after doing the appropriate action, internal server error, server does not support the functionality required to fulfill the request, error response received from gateway, temporarily overloaded, timed out waiting for gateway, attempt to redirect the navigation failed, and HTTP version not supported. In any event, a status message is usually displayed indicating that the network resource request has failed.
A network resource identifier such as a Uniform Resource Identifier (URI) is a compact string of characters for identifying an abstract or physical resource such as a network resource. URIs are the generic set of all names and addresses that refer to objects on the Internet. URI is that refer to objects accessed with existing protocols are known as Uniform Resource Locators (URLs). A URL is the address of a file accessible on the Internet. The URL includes the name of the protocol required to access the resource, a domain name, or IP address that identifies a specific computer on the Internet, and a hierarchical description of a file location on the computer. For example the URL “http://www.example.com/index.html”, where “http” is the scheme or protocol, “www.example.com” is the Fully Qualified Domain Name (FQDN), and “index.html” is the filename located on the server.
Because an Internet address is a relatively long string of numbers (e.g., 31.41.59.26) that is difficult to remember, Internet users rely on domain names, memorable and sometimes catchy words corresponding to these numbers, in order to use e-mail and to connect to Internet sites on the Web. The Domain Name System (DNS) is a set of protocols and services on a network that allows users to utilize domain names when looking for other hosts (e.g., computers) on the network. The DNS is composed of a distributed database of names. The names in the DNS database establish a logical tree structure called the domain name space. Each node or domain in the domain name space is named and can contain subdomains. Domains and subdomains are grouped into zones to allow for distributed administration of the name space.
The DNS provides a mechanism so backup databases can be identified in case the first one becomes unavailable. DNS databases are updated automatically so that information on one name server does not remain out-of-date for long. A client of the DNS is called a resolver; resolvers are typically located in the application layer of the networking software of each TCP/IP capable machine. Users typically do not interact directly with the resolver. Resolvers query the DNS by directing queries at name servers, which contain parts of the distributed database that is accessed by using the DNS protocols to translate domain names into IP addresses needed for transmission of information across the network. The function of translating a domain name into an IP address is known as name resolution. Name resolution is performed by a distributed system of name servers having resolvers to fulfill the resource request of the client by the successive hierarchical querying of the resource records from zone files.
The Berkeley Internet Name Domain (BIND) implements an Internet name server for the UNIX operating system. The BIND includes a name server and a resolver library. BIND is fully integrated into UNIX network programs for use in storing and retrieving host names and addresses by calling a routine from the resolver library called gethostbyname( ) which returns the IP address corresponding to a given Internet host name. Error return status from gethostbyname( ) is indicated by return of a NULL pointer.
At the heart of Netscape client products lies the Netscape Network Library (NETLIB). A necessity of any network based client browser application is to send and receive data over a connection. This is accomplished in NETLIB by making a call to NET_GetURL( ). In order to resolve host names, NETLIB uses a standard DNS lookup mechanism. NET_FindAddress( ) makes the gethostbyname( ) call to lookup the IP address for the specified host from a DNS database stored on a DNS server, and is called from NET_BeginConnect( ). If a numeric IP address is passed into NET_FindAddress( ), it is passed directly into the gethostbyname( ) call which returns a success when an IP address is passed in. NET_FindAddress( ) is actually called repeatedly until it returns success or failure. Similarly, MSIE browser include objects such as WebBrowser Object and InternetExplorer Object, which contains events, methods, and properties. One event, called the Navigate Event navigates to a resource identified by a URL.
A domain name includes two parts: a host and a domain. Technically, the letters to the right of the “dot” (e.g., tut.net) are referred to as Top Level Domains (TLDs), while hosts, computers with assigned IP addresses that are listed in specific TLD registries are known as second-level domains (SLDs). The domain name, “tlda.com”, “.com” is the TLD, and “tlda” is the SLD. Domain name space is the ordered hierarchical set of all possible domain names either in use or to be used for locating an IP address on the Internet. TLDs are known as top-level domains because they comprise the highest-order name space available on the Internet. Second-level domains, as well as third-level domains (3LDs) such as “news.tlda.com”, are subsidiary to TLDs in the hierarchy of the Internet's DNS.
There are two types of top-level domains, generic and country code. Generic top-level domains (gTLDs) are used to allocate resources to the growing community of institutional networks, while country code top-level domains (ccTLDs) are used use by each individual country, as deemed necessary. More than 240 national, or country-code TLDs (e.g., United States (.us), Japan (.jp), Germany (.de), etc.) are administered by their corresponding governments. A small set of gTLDs does not carry any national identifier, but denote the intended function of that portion of the domain space. For example, “.com” was established for commercial networks, “.org” for not-for-profit organizations, and “.net” for network gateways. The set of gTLDs was established early in the history of the DNS and has not been changed or augmented in recent years (COM, ORG, GOV, and MIL were created by January 1985, NET in July 1985, and INT was added in November 1988).
Incorporated and headquartered in California, the Internet Corporation for Assigned Names and Numbers (ICANN) is the non-profit corporation that was formed to take over responsibility for the IP address space allocation, protocol parameter assignment, domain name system management, and root server system management functions now performed under U.S. Government contract by Internet Assigned Numbers Authority (IANA) and other entities. The IANA, also headquartered in California, is the overall authority for day-to-day administration of the DNS. IANA staff carry out administrative responsibilities for the assignment of IP Addresses, Autonomous System Numbers, TLDs, and other unique parameters of the DNS and its protocols.
By Jun. 1, 1999, Network Solutions (NSI) Registry (now Verisign) had implemented a shared registration system (SRS) to support multiple licensed, accredited registrars offering registration services. NSI and other domain name registrars function as retailers of domain name registration services through NSI's SRS. To date, more than 20,000,000 domain names, or SLDs, in “.com”, “.net”, “.org”, and “.edu” have been registered.
VeriSign Global Registry Services (GRS) is the leading provider of domain name registry services and DNS support to the Internet and is responsible for the infrastructure that propagates this information throughout the Internet and responds to over 1.5 billion DNS look-ups daily. The Registry stores information about registered domain names and associated name servers. A domain name's data includes its name, name servers, registrar, registration expiration date, and status. A name server's data includes its server name, IP addresses, and registrar.
As explained in S. Hollenbeck, et. al, “Informational RFC (Request for Comment) 2832: NSI Registry Registrar Protocol (RRP) Version 1.1.0”, Internet Engineering Task Force (IETF), May 2000, “http://www.faqs.org/rfcs/rfc2832.html”, VeriSign GRS has developed a registration protocol for use within the SRS. Internet domain name registration typically involves three entities: a registrant who wishes to register a domain name, a registrar who provides services to the registrant, and a registry that provides services to the registrar while serving as the authoritative repository of all functional information required to resolve names registered in the registry's TLDs.
A Registrar may access the Registry via RRP to perform registration service procedures such as determining if a domain name has been registered, registering a domain name, renewing the registration of a domain name, canceling the registration of a domain name, updating the name servers of a domain name, transferring a domain name from another registrar, examining or modifying the status of domain names that the registrar has registered, determining if a name server has been registered, registering a name server, updating the IP addresses of a name server, deleting a name server, and examining the status of name servers that the registrar has registered.
Domain name registration for a given NIC authority can be accessed by a TCP/IP application called WHOIS, which queries a NIC database to find the name of network and system administrators, system and network points-of-contact, and other individuals who are registered in appropriate databases. Domain names are identifiers used for both accessing a resource and retrieving contact information of the registrant or domain name holder of that resource. The availability of a domain name from a NIC authority for a given TLD is determined by submitting a WHOIS request. If there are no matches in the database then the domain name may be available for registration. Regional WHOIS registries are maintained by NSI and ARIN (American Registry for Internet Numbers) located in the U.S., APNIC (Asia-Pacific Network Information Center) located in Australia, and RIPE NCC located in the Netherlands. Domain name resolution is determined by resolving a query in the DNS and domain name availability is determined by using the RRP or WHOIS service to query an appropriate NIC database.
WIPO Patent Application WO9909726A1 published on Feb. 25, 1999 by Broadhurst, entitled, “Method of determining unavailability of Internet domain names” discloses an improved query server that overcomes the shortcomings of existing domain name searching techniques by performing a multitude of searches simultaneously, transparent to the user. Specifically, the improved query server searches for existing domain name records in various domains and then displays the results in a formatted manner, thus eliminating the need for a user to perform individual searches. However, such improvements do not consider the integration of services other than that of domain name registration.
URLs are used in media, documents, e-mail, and data files, etc. as a means to make reference to accessible online content that can express the context of ideas may wish to communicate. URLs are generally written in an abbreviated manner as partial URLs or domain names (e.g., “http://www.example.com” is the URL, “www.example.com” is the FQDN, and “example.com” is the domain name). During early stages of commercialization of the Internet, businesses displayed the full URL when advertising a commercial or display ad as a means to locate the resources of the business on the Internet. Improvements have been made to recognize partial URLs when entered in the location field of a web browser or network accessible device for automatically appending protocol information so a full URL request can be made. By submitting a domain name or FQDN in the location field, the browser modifies the request by adjusting the partial URL and adding “http://” in front of the domain name or FQDN in order to construct a valid URL. As a result of this convenience, companies have modified their advertising and distribution of URLs through print, film, radio, television and other media as “example.com” or “www.example.com” instead of the URL “http://www.example.com”.
The “www” in “www.example.com” has become the de facto standard for web server software to connect with hosts on the World Wide Web portion of the Internet. However, in an effort to shorten the URL length both in advertising and as a means of input, a DNS resource record has been used to create aliases for the actual FQDN. The CNAME Record are sometimes called “aliases” but are technically referred to as “Canonical Name” (CNAME) entries. These records enable the use of pointing more than one domain name to a single host. Using canonical names makes it easy to host both an FTP server and a Web server on the same machine. The CNAME record “example.com. IN CNAME www.example.com.” enables a domain name to become an alias of a FQDN. This alias allows resolvers to process input such as “http://example.com” to resolve to a web server corresponding to the URI “http://www.example.com”.
As explained in P. Mockapetris, “Informational RFC (Request for Comment) 1034: DOMAIN NAMES—CONCEPTS AND FACILITIES”, Internet Engineering Task Force (IETF), November 1987, “http://www.faqs.org/rfcs/rfc1034.html”, the principal activity of name servers is to answer standard queries. Both the query and its response are carried in a standard message format. A domain name identifies a node. Each node has a set of resource information, which may be empty. The set of resource information associated with a particular name is composed of separate resource records (RRs). The order of RRs in a set is not significant, and need not be preserved by name servers, resolvers, or other parts of the DNS.
RRs with owner names starting with the label “*” are called wildcard resource records. Wildcard RRs can be thought of as instructions for synthesizing RRs. When the appropriate conditions are met, the name server creates RRs with an owner name equal to the query name and contents taken from the wildcard RRs. The only example of wildcard RR usage in RFC 1034 is that of e-mail aliasing. Recently, ccTLD registries have used wildcard RRs to redirect a resolvable domain name back to the registrar component of the registry to perform registration requests. Performing this technique in a gTLD zone file would cause conflict enabling the Registry to bypass competition among multiple registrars in this very public component of the Internet's underlying technology. As a result a wildcard RR has never been used in a gTLD zone file.
The main use of a web browser location field is for resolving URLs to locate and access resources. Entering a URL into the location field of a web browser serves as a means to access a network resource corresponding to that URL. Because the location field is essential for accessing resources, the design of such location fields have rivaled much competition and innovation between existing web browser products from companies such as Netscape and Microsoft. Improvements to better track and organize sites of URLs that users have visited such as Bookmark folders, URL history, and the personal toolbar are all examples of functionality designed to help users navigate. Other improvements include spell checking and an autocomplete feature from the URL history as text is entered into the location field.
URLs can be removed or made temporarily unavailable for numerous reasons. When a file is removed from a directory, the URL that represents the file location no longer exists and therefore can not be found. It is quite common for users to modify a URL by deleting the file portion as an attempt to access the default “index.html” file from the same directory path. For instance, the URL “http://example.com/first/second/file.html” is not found, leaving the user to remove “file.html” to try to access the modified URL, “http://example.com/first/second/”. If the modified URL is still not found, then the user manually repeats such steps with the hope that some level of access to the computer resource is successful.
Another location field improvement includes a reverse autocomplete feature to help automate the process of systematically attempting to access a related resource similar to that of the original requested resource. U.S. Pat. No. 6,041,324 issued on Mar. 21, 2000 by Earl, et al., entitled, “System and method for identifying valid portion of computer resource identifier” discloses a method for receiving and validating user input for a computer resource entered into a computing system or network, and distinguishing valid and invalid portions of the user input. The most specific portion of the invalid resource identifier is removed from the invalid resource identifier to create a modified resource identifier, wherein the modified resource identifier is used to attempt to access a higher-level computer resource. The fields corresponding to the most specific portion of the resource identifier are removed until the modified resource identifier proves to be a valid resource identifier, which can access a computer resource.
The '324 patent processes all input determined to be invalid as an error or mistake without consideration to the benefits of intentionally receiving invalid input for the purpose of resource location. Though the '324 patent distinguishes a valid resource identifier from within an invalid resource identifier entered by the user, no consideration is given to further using the invalid portion of the resource identifier for other purposes. The '324 patent treats the invalid identifier as if it was at one time valid. Modification of the resource identifier is only path specific and does not contemplate modifying the domain level or server portion of the resource identifier. Furthermore, such modification techniques are applied in only one direction which is to successively generate a higher level computer resource through truncation, and does not contemplate successively generating lower level computer resources through prepend or append procedures.
U.S. Pat. No. 5,978,817 issued on Nov. 2, 1999 by Giannandrea, et al., entitled, “Browser having automatic URL generation” discloses a method for accessing a remote server over a network using a browser from a URL that contains a protocol portion and a server portion. A front-end module of the browser allows a viewer to type in a host name and it can supply the complete URL address to locate the corresponding file from a remote server. For example, when a viewer types in “www.foo.com”, the module causes NETLIB to open a connection using the following URL name: “http://www.foo.com/”. Similarly, when a viewer types in “ftp.foo.com”, “news.foo.com”, or “gopher.foo.com”, the module causes NETLIB to a open a connection using “ftp://ftp.foo.com”, “news://news.foo.com/”, or “gopher://gopher.foo.com/”, respectively. This feature reduces the amount of typing by a viewer, thereby making the browser easier to use. Though the protocol portion that corresponds to the typed-in server portion is determined in response to the typed-in server portion, there is no mention of how to prepend lower level domains to a domain name in response to failing to access a network resource corresponding to the domain name.
A more recent feature called Smart Browsing is integrated into Netscape Navigator that uses Internet Keywords so users can streamline the use of URLs and get fast access to web sites using the browser's location field. Any single or multiword strings typed into the browser's location field that does not include a “.” are sent via HTTP to a server at “netscape.com”. The keyword server pulls the string and compares it to several separate lists of keyword-URL pairs. If the keyword system finds a match, it redirects the user's browser to the URL of the keyword-URL pair. Failing a match against the lists, the user's browser is redirected to a Netscape Search page with the typed string as the search query. The “.” versus “ ” is a key factor in determining what services are used. The detection of a “.” implies a domain name for name resolution services whereas the detection of a “ ” implies a search request for directory services depending on context.
The autosearch feature of MSIE is another example of an improvement to the location field of a web browser. The details of the autosearch feature is disclosed in U.S. Pat. No. 6,009,459 issued on Dec. 28, 1999 by Belfiore, et al., entitled, “Intelligent automatic searching for resources in a distributed environment.” The '459 patent specifies a mechanism for a computer system to automatically and intelligently determine what a user intended when the user entered text within the location field of a web browser. Often users improperly enter URLs or enter search terms in a user interface element that requires URLs. If the user enters text that is not a URL, the system may first try to construct a valid URL from the user-entered text. If a valid URL cannot be constructed, the browser then automatically formats a search engine query using the user-entered text and forwards the query to an Internet search engine. In an alternative embodiment of the '459 patent, the passing of search terms to the search engine is not triggered by an improper URL being entered but rather is triggered by the failure to resolve the URL to a web site within a certain time frame due to a heavily used page that cannot be readily accessed.
In addition, the '459 patent specifies a template registry that categorizes the specific suitability of a plurality of search engines to locate web sites related to a determined meaning of the specified text. The template is an entry in the registry that includes replaceable characters that may be replaced with the processed text. An example template registry entry that causes the Yahoo! search engine to be called is “http://msie.yahoo.com/autosearch?%s”. The % s is filled in with information regarding the search terms.
RealNames Corporation provides a registry of registered keywords and phrases as an alternate means of resource location. Recently, Microsoft in alliance with RealNames has configured MSIE AutoSearch feature to redirect to a RealNames resolver/server in an attempt to find any registered keywords or phrases that match the search input entered into the browser. Currently, RealNames resolvers/servers do not perform the step of determining domain name availability nor the step of processing input in response to a DNS resolution error, but is used instead only as an alternative navigational tool in response to search requests.
Each day hundreds of thousands of users are connecting to the Internet for the first time. First time users are already familiar with the concept of a domain name or web address such as “example.com” or a URL such as “http://www.example.com/index.html” because of their contact with the myriad of advertisements in print, radio, and television. Because the navigation of network resources is left up to the user, it is quite often that a user may enter a descriptive word and concatenate a TLD such as “.com” to it, forming a domain name with the hope of finding information relating to the descriptive word. When a resource such as a web page can not be accessed after entering a web address or URL in the command line of a device or location field of a web browser, novice users of the Internet may assume that the resource does not exist and that the domain name of such a resource is available to the user for registration. This is a common mistake. The domain name may be registered but has no corresponding web site. Availability of the domain name remains unclear until a separate domain name availability request such as a WHOIS or RRP request is performed. To date, there is know known system for using the location field of a web browser as a registration tool in addition to a navigation tool and search tool.
In effect, a domain name can be considered an object having the properties of resolvability and availability, wherein methods of resolvability are applied to resource identification and location services and methods of availability are applied to domain name registration services. To date, resource location and domain name availability have remained separate mutually exclusive services. Additional advantages can be obtained by integrating these separate services into a unified service. Accordingly, in light of the above, there is a strong need in the art for a system and method for integrating resource location and registration services.